<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="tool" content="leanote-desktop-app">
<title>网络管理（SNMP协议）</title>
<style>
.tab{font-size:12px; margin-bottom: 10px;}
.tab a{cursor:pointer;cursor:pointer;display:inline-block;margin-right:10px;color:#000}#tab-html{color:#ccc}

.content-container .content-html{visibility: hidden;}
.content-container.html .content-markdown{display:none}
.content-container.html .content-html{display:block; visibility: visible;}
.content-container.html #tab-markdown{color:#ccc}
.content-container.html #tab-html{color:#000}
.content-markdown {overflow: auto;}
textarea {display: none;}

*{font-family:"lucida grande","lucida sans unicode",lucida,helvetica,"Hiragino Sans GB","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;}

body {
  margin: 0;
}

/*公用文字样式*/
h1{font-size:30px}h2{font-size:24px}h3{font-size:18px}h4{font-size:14px}
.note-container{
    width:850px; 
    margin:auto;
    padding: 10px 20px;
    box-shadow: 1px 1px 10px #eee;
}
#title {
  margin: 0;
}
table {
    margin-bottom: 16px;
    border-collapse: collapse;
}
table th, table td {
    padding: 6px 13px;
    border: 1px solid #ddd;
}
table th {
    font-weight: bold;
}

table tr {
    background-color: none;
    border-top: 1px solid #ccc;
}
table tr:nth-child(2n) {
    background-color: rgb(247, 247, 249);
}
.mce-item-table, .mce-item-table td, .mce-item-table th, .mce-item-table caption {
  border: 1px solid #ddd;
  border-collapse: collapse;
  padding: 6px 13px;
}
blockquote {
  border-left-width:10px;
  background-color:rgba(128,128,128,0.05);
  border-top-right-radius:5px;
  border-bottom-right-radius:5px;
  padding:15px 20px;
  border-left:5px solid rgba(128,128,128,0.075);
}
blockquote p {
  margin-bottom:1.1em;
  font-size:1em;
  line-height:1.45
}
blockquote ul:last-child,blockquote ol:last-child {
  margin-bottom:0
}
pre {
  padding: 18px;
  background-color: #f7f7f9;
  border: 1px solid #e1e1e8;
  border-radius: 3px;
  display: block;
}
code {
  padding: 2px 4px;
  font-size: 90%;
  color: #c7254e;
  white-space: nowrap;
  background-color: #f9f2f4;
  border-radius: 4px;
}
.footnote {
  vertical-align: top;
  position: relative;
  top: -0.5em;
  font-size: .8em;
}

hr {
  margin:2em 0
}
img {
  max-width:100%;
  display: block;
  margin: auto;
}
pre {
  word-break:break-word
}
p,pre,pre.prettyprint,blockquote {
  margin:0 0 1.1em
}
hr {
  margin:2em 0
}
img {
  max-width:100%
}
.sequence-diagram,.flow-chart {
  text-align:center;
  margin-bottom:1.1em
}
.sequence-diagram text,.flow-chart text {
  font-size:15px !important;
  font-family:"Source Sans Pro",sans-serif !important
}
.sequence-diagram [fill="#ffffff"],.flow-chart [fill="#ffffff"] {
  fill:#f6f6f6
}
.sequence-diagram [stroke="#000000"],.flow-chart [stroke="#000000"] {
  stroke:#3f3f3f
}
.sequence-diagram text[stroke="#000000"],.flow-chart text[stroke="#000000"] {
  stroke:none
}
.sequence-diagram [fill="#000"],.flow-chart [fill="#000"],.sequence-diagram [fill="#000000"],.flow-chart [fill="#000000"],.sequence-diagram [fill="black"],.flow-chart [fill="black"] {
  fill:#3f3f3f
}
ul,ol {
  margin-bottom:1.1em
}
ul ul,ol ul,ul ol,ol ol {
  margin-bottom:1.1em
}
kbd {
  padding:.1em .6em;
  border:1px solid rgba(63,63,63,0.25);
  -webkit-box-shadow:0 1px 0 rgba(63,63,63,0.25);
  box-shadow:0 1px 0 rgba(63,63,63,0.25);
  font-size:.7em;
  font-family:sans-serif;
  background-color:#fff;
  color:#333;
  border-radius:3px;
  display:inline-block;
  margin:0 .1em;
  white-space:nowrap
}
.toc ul {
  list-style-type:none;
  margin-bottom:15px
}
.m-todo-item {
  list-style: none;
}
pre code {
  padding: 0;
  color: inherit;
  white-space: pre-wrap;
  background-color: inherit;
  border-radius: 0;
}
</style>
<!-- 该css供自定义样式 -->
<link href="../leanote-markdown.css" rel="stylesheet">
</head>

<body>

	<div class="note-container">
		<h1 class="title" id="leanote-title">网络管理（SNMP协议）</h1>
		<div class="content-container html" id="content-container">
			<!-- 切换 -->
			<div class="tab"><a id="tab-markdown">Markdown</a><a id="tab-html">HTML</a></div>
			<textarea id="leanote-content-markdown">声明:本内容来自于[SNMP简单网络管理协议](http://www.cnblogs.com/yinshoucheng-golden/archive/2016/11/23/6094645.html) 
 

----------


 [TOC]
 
 SNMP（Simple Network Management Protocol，简单网络管理协议），基于TCP/IP工作，能对企业网络中支持SNMP功能的设备进行集中网络管理。这些设备包括服务器、工作站、路由器、交换机、PIX防火墙、ASA、入侵检测与防御设备等，它是一种开放的、标准的应用层协议。SNMP使网络管理员能够更有效的管理企业网络，包括：集中监控网络服务器及各种网络设备的CPU、内存、接口状态等实时信息。发现并解决网络问题及规划网络增长。通过SNMP接收随机消息（及事件报告），使得网络管理系统获知网络出现问题。

## SNMP网络管理的组件
    SNMP管理的网络由3个主要部分组成：被管理设备、SNMP代理和NMS（网络管理系统）。

被管理设备：通常有一个基本的网络通信点，可以是路由器、服务器、交换机和网桥、主机、网络打印机、防火墙等。被管理设备有时被称为网络单元。

SNMP代理：是被管理设备上的一个网络管理软件功能模块，通常被集成到被管理的网络设备上。SNMP代理拥有本地的相关管理信息，并将它们转换成SNMP兼容的格式消息，发送给网络管理平台。

NMS（网络管理系统）：运行基于SNMP的网络管理应用程序以实现监控被管理的网络设备，也就是SNMP管理的服务端。任何受SNMP管理的网络至少需要一个或多个网络管理系统，整个SNMP的网络管理构建如下图所示。

![](网络管理（SNMP协议）_files/59788358cf06bc45a4000008.png)

##关于思科网络设备支持SNMP的版本
- SNMPv1：SNMPv1是最早的SNMP定义，其所有的PDU有相同的格式，相对简单，但存在严重的安全问题、一般不建议使用。

- SNMPv2：与SNMPv1相比较，在MIB的定义上有所增强，在安全性上有所增强，事实上整体报文结构的定义也有很大的区别。如存在基于共同体的v2c、思科的网络设备就支持SNMPv2c，在SNMPv2中还存在基于用户的v2u，但无论是v2的什么版本，始终不变的是PDU报文格式。

- SNMPv3：v3成功的解决了v2存在多种变体的问题，并在SNMP报文首部标识出了处理安全性事务的专用字段，每种SNMPv3的安全性模型可以裁剪安全性字段，v3具备更高的安全性与灵活性，但是很多厂商现在不支持这个版本。

----------


## SNMP的报文格式
SNMP的报文格式如下图。
![](网络管理（SNMP协议）_files/59788404cf06bc45a4000009.png)

- 版本标识符（Version Identifier）：确保SNMP代理使用相同的协议版本。每个SNMP代理都会丢弃与自己协议版本不同的数据报文。

- 团体名（Community Name）：用于SNMP代理与SNMP管理站之间进行`认证`。如果被管理设备与SNMP网络管理系统之间协同工作，那么要求它们的团体名称必须一致。在默认情况下，private与public为SNMP的团体名。private表示SNMP管理站可对SNMP代理（被管理设备）执行写操作，具有安全风险，如果不是必须，请小心使用。public表示SNMP管理站可对SNMP代理（被管理设备）执行只读操作。

- 协议数据单元（PDU）：PDU指明了SNMP的消息类型及其相关参数。PDU消息是SNMP代理（被管理设备）发出的真实消息。

----------


> 注意：SNMP数据报文与PDU之间的区别。SNMP报文与SNMP的PDU报文严格地说不是一回事。PDU是被管理设备之间通信的真实消息，它和大量用于携带标识和安全性字段一起被嵌入到SNMP整体报文中。因此，一般我们将SNMP的报文表达成SNMP报文首部与PDU消息体。

----------


**哪些网络设备可以被执行SNMP的网络管理，为什么可以精确到设备上的每个部件或功能？**

----------


只要集成了SNMP管理信息库和SNMP代理的设备都可以被执行SNMP管理。管理信息库（Management Information Base，MIB）是执行SNMP网络管理的标准，在MIB库里面认定了网络代理设备必须保存的数据项目、数据类型及允许在每个数据项目中的操作。通过对这些数据项目的存取访问，就可以得到该网络设备的所有内容。在MIB中定义了可访问的网络设备及其功能属性，网络设备的每个特性由对象识别符（Object Identifier，OID）唯一指定。MIB是一个树形结构，SNMP协议消息通过遍历MIB树形目录中的节点来访问网络中的设备。换而言之，一个可被SNMP执行管理的网络设备的哪些功能和特性能被管理，是由MIB所定义的。MIB的树形结构如下图所示。
![](网络管理（SNMP协议）_files/59788585cf06bc45a400000a.png)

> 实例：理解SNMP协议消息通过遍历MIB树形目录中的节点来访问网络中的设备OID，如下图所示。

![](网络管理（SNMP协议）_files/597885d7cf06bc45a400000c.png)

OID .1.3.6.1.4.1.9.1.323的意义是什么？

> 分析：1代表ISO组织标准；3代表org；6表示美国国防部；1表示Internet；4表示私有定义；1表示企业标准；9表示思科公司；1.323表示交换机2950上运行的标准镜像系统。


NMS平台正是使用这样的方式获得思科交换机2950的相关信息。</textarea>
			<!-- markdown -->
			<pre class="content-markdown">声明:本内容来自于[SNMP简单网络管理协议](http://www.cnblogs.com/yinshoucheng-golden/archive/2016/11/23/6094645.html) 
 

----------


 [TOC]
 
 SNMP（Simple Network Management Protocol，简单网络管理协议），基于TCP/IP工作，能对企业网络中支持SNMP功能的设备进行集中网络管理。这些设备包括服务器、工作站、路由器、交换机、PIX防火墙、ASA、入侵检测与防御设备等，它是一种开放的、标准的应用层协议。SNMP使网络管理员能够更有效的管理企业网络，包括：集中监控网络服务器及各种网络设备的CPU、内存、接口状态等实时信息。发现并解决网络问题及规划网络增长。通过SNMP接收随机消息（及事件报告），使得网络管理系统获知网络出现问题。

## SNMP网络管理的组件
    SNMP管理的网络由3个主要部分组成：被管理设备、SNMP代理和NMS（网络管理系统）。

被管理设备：通常有一个基本的网络通信点，可以是路由器、服务器、交换机和网桥、主机、网络打印机、防火墙等。被管理设备有时被称为网络单元。

SNMP代理：是被管理设备上的一个网络管理软件功能模块，通常被集成到被管理的网络设备上。SNMP代理拥有本地的相关管理信息，并将它们转换成SNMP兼容的格式消息，发送给网络管理平台。

NMS（网络管理系统）：运行基于SNMP的网络管理应用程序以实现监控被管理的网络设备，也就是SNMP管理的服务端。任何受SNMP管理的网络至少需要一个或多个网络管理系统，整个SNMP的网络管理构建如下图所示。

![](网络管理（SNMP协议）_files/59788358cf06bc45a4000008.png)

##关于思科网络设备支持SNMP的版本
- SNMPv1：SNMPv1是最早的SNMP定义，其所有的PDU有相同的格式，相对简单，但存在严重的安全问题、一般不建议使用。

- SNMPv2：与SNMPv1相比较，在MIB的定义上有所增强，在安全性上有所增强，事实上整体报文结构的定义也有很大的区别。如存在基于共同体的v2c、思科的网络设备就支持SNMPv2c，在SNMPv2中还存在基于用户的v2u，但无论是v2的什么版本，始终不变的是PDU报文格式。

- SNMPv3：v3成功的解决了v2存在多种变体的问题，并在SNMP报文首部标识出了处理安全性事务的专用字段，每种SNMPv3的安全性模型可以裁剪安全性字段，v3具备更高的安全性与灵活性，但是很多厂商现在不支持这个版本。

----------


## SNMP的报文格式
SNMP的报文格式如下图。
![](网络管理（SNMP协议）_files/59788404cf06bc45a4000009.png)

- 版本标识符（Version Identifier）：确保SNMP代理使用相同的协议版本。每个SNMP代理都会丢弃与自己协议版本不同的数据报文。

- 团体名（Community Name）：用于SNMP代理与SNMP管理站之间进行`认证`。如果被管理设备与SNMP网络管理系统之间协同工作，那么要求它们的团体名称必须一致。在默认情况下，private与public为SNMP的团体名。private表示SNMP管理站可对SNMP代理（被管理设备）执行写操作，具有安全风险，如果不是必须，请小心使用。public表示SNMP管理站可对SNMP代理（被管理设备）执行只读操作。

- 协议数据单元（PDU）：PDU指明了SNMP的消息类型及其相关参数。PDU消息是SNMP代理（被管理设备）发出的真实消息。

----------


> 注意：SNMP数据报文与PDU之间的区别。SNMP报文与SNMP的PDU报文严格地说不是一回事。PDU是被管理设备之间通信的真实消息，它和大量用于携带标识和安全性字段一起被嵌入到SNMP整体报文中。因此，一般我们将SNMP的报文表达成SNMP报文首部与PDU消息体。

----------


**哪些网络设备可以被执行SNMP的网络管理，为什么可以精确到设备上的每个部件或功能？**

----------


只要集成了SNMP管理信息库和SNMP代理的设备都可以被执行SNMP管理。管理信息库（Management Information Base，MIB）是执行SNMP网络管理的标准，在MIB库里面认定了网络代理设备必须保存的数据项目、数据类型及允许在每个数据项目中的操作。通过对这些数据项目的存取访问，就可以得到该网络设备的所有内容。在MIB中定义了可访问的网络设备及其功能属性，网络设备的每个特性由对象识别符（Object Identifier，OID）唯一指定。MIB是一个树形结构，SNMP协议消息通过遍历MIB树形目录中的节点来访问网络中的设备。换而言之，一个可被SNMP执行管理的网络设备的哪些功能和特性能被管理，是由MIB所定义的。MIB的树形结构如下图所示。
![](网络管理（SNMP协议）_files/59788585cf06bc45a400000a.png)

> 实例：理解SNMP协议消息通过遍历MIB树形目录中的节点来访问网络中的设备OID，如下图所示。

![](网络管理（SNMP协议）_files/597885d7cf06bc45a400000c.png)

OID .1.3.6.1.4.1.9.1.323的意义是什么？

> 分析：1代表ISO组织标准；3代表org；6表示美国国防部；1表示Internet；4表示私有定义；1表示企业标准；9表示思科公司；1.323表示交换机2950上运行的标准镜像系统。


NMS平台正是使用这样的方式获得思科交换机2950的相关信息。</pre>
			<!-- html -->
			<div class="content-html" id="leanote-content-html"></div>
		</div>
	</div>

<!-- 该js供其它处理 -->
<script src="../leanote-markdown.js"></script>
<script src="http://leanote.github.io/markdown-to-html/markdown-to-html.min.js"></script>
<script>
function init() {
	markdownToHtml(document.getElementById('leanote-content-markdown').value, document.getElementById('leanote-content-html'), function(html) {
		// 解析后执行
		if(window.markdownParsed) {
			window.markdownParsed(html);
		}
	});
	var $m = document.getElementById('tab-markdown');
	var $h = document.getElementById('tab-html');
	var $cc = document.getElementById('content-container');
	function toggleToHtml(isToHtml) {
		$cc.className = isToHtml ? 'content-container html' : 'content-container';
	}
	$m.addEventListener('click', function() {
		toggleToHtml(false);
	});
	$h.addEventListener('click', function() {
		toggleToHtml(true);
	});
}

// 如果不要自动解析html, notParseMarkdown在leanote-markdown.js中定义
if(!window.notParseMarkdown) {
	init();
}
</script>
</body>
</html>